/**
 * form表单转换json对象
 */
$.fn.serializeJson=function(){  
    var serializeObj={};  
    var array=this.serializeArray();  
    var str=this.serialize();  
    $(array).each(function(){  
        if(serializeObj[this.name]){  
            if($.isArray(serializeObj[this.name])){  
                serializeObj[this.name].push(this.value);  
            }else{  
                serializeObj[this.name]=[serializeObj[this.name],this.value];  
            }  
        }else{  
            serializeObj[this.name]=this.value;   
        }  
    });  
    return serializeObj;  
};

$.extend($.fn.validatebox.defaults.rules, {
    comboxRequired: {
        validator: function(value, param){
        	return $(param[0]).find("option:contains('"+value+"')").val() != '';
        },
        message: '必须选择一个'
    }
});

var ToolsUtil = {
	/**
	 * 字符串替换
	 * @param str
	 * @param pattern
	 * @param data
	 * @returns
	 */
	strReplaceData:function(str,pattern,data){
		var reg =new RegExp(pattern);
		var i = 0;
		while(reg.exec(str)){
			str = str.replace(reg, data[i]);
		}
		return str;
	},
	isNotNull:function(str){
		if(str!=null && (str!=""||str!=0)&& str!="null"){
			return true;
		}
		return false;
	},
	/**
	 * 根据元素名称取元素对象。
	 * @param elemName 元素名称，或id.
	 * @param index 如果存在多个同名元素，元素的位置索引，=-1或null时取最后一个.
	 * @param dlgId 弹窗id.
	 * @return 元素对象。
	 */
	getElemObj:function(elemName,index,dlgId){
		var context = document;
		if(dlgId){
			var dialog = System.getCache(dlgId);
			var iframe = dialog.find('iframe');
			context = iframe.prop('contentWindow').document;
		}
		var elem = context.getElementById(elemName);
		if(elem){
			return elem;
		}
//		var elem = $(context).find("#"+elemName);
//		if(elem.length>0){
//			return elem;
//		}
		var elemArr=context.getElementsByName(elemName);
		if(elemArr.length==0){
			return null;
		}
		if(index==-1 || index==null){
			return elemArr[elemArr.length-1];
		}
		if(index>elemArr.length-1){
			return null;
		}
		return elemArr[index];
	},
	/**
	 * 取元素值.
	 * @param elem 元素对象。
	 * @param isInnerHTML 如果没有value属性，是否处理innerHTML,默认为true.
	 * @return 元素值。
	 */
	getElemValue:function(elem,isInnerHTML){
		if(elem==null){
			return null;
		}
		if(isInnerHTML==null){
			isInnerHTML=true;
		}
		if(typeof elem.value !="undefined"){
			return elem.value;//对于select单选也生效。
		}else if(isInnerHTML && (typeof elem.innerHTML!="undefiend")){
			return elem.innerHTML;
		}
	},
	/**
	 * 设置元素值.
	 * @param elem 元素对象。
	 * @param value 元素值。
	 * @param isInnerHTML 如果没有value属性，是否设置innerHTML,默认为true.
	 */
	setElemValue:function(elem,value,isInnerHTML){
		if(elem==null){
			return null;
		}
		if(isInnerHTML==null){
			isInnerHTML=true;
		}
		if(elem.tagName=="input" && (elem.type.toLowerCase()=="checkbox" || elem.type.toLowerCase()=="radio")){
			if(value==elem.value){
				elem.checked=true;
			}else{
				elem.checked=false;
			}
			return;
		}
		if(typeof elem.value !="undefined"){
			elem.value=value;//对于select单选也生效。
		} else if(isInnerHTML && (typeof elem.innerHTML!="undefiend")){
			elem.innerHTML=value;
		}
	}
}



